package com.ruoyi.training.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import java.util.Date;

/**
 * 报名对象 registration
 * 
 * @author hcc
 * @date 2025-09-17
 */
public class Registration extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 报名id */
    private String registrationId;

    /** 学员id */
    @Excel(name = "学员id")
    private String studentId;

    /** 单位id */
    @Excel(name = "单位id")
    private String unitId;

    /** 培训科目id */
    @Excel(name = "培训科目id")
    private String subjectId;

    /** 培训项目id */
    @Excel(name = "培训项目id")
    private String projectId;

    /** 培训类别 */
    @Excel(name = "培训类别")
    private String trainingType;

    /** 档案id */
    @Excel(name = "档案id")
    private String recordId;

    /** 报名方式 */
    @Excel(name = "报名方式")
    private String registrationMethod;

    /** 职位 */
    private String registrationPosition;

    /** 工作简历 */
    @Excel(name = "工作简历")
    private String workResume;

    /** 快递单号 */
    @Excel(name = "快递单号")
    private String trackingNumber;

    /** 提交状态 */
    @Excel(name = "提交状态")
    private String submitStatus;

    /** 审核状态 */
    @Excel(name = "审核状态")
    private String reviewStatus;

    /** 缴费状态 */
    @Excel(name = "缴费状态")
    private String paymentStatus;

    /** 入班状态 */
    @Excel(name = "入班状态")
    private String classStatus;

    /** 档案状态 */
    @Excel(name = "档案状态")
    private String recordStatus;

    /** 协议缺失情况 */
    @Excel(name = "协议缺失情况")
    private String agreementStatus;

    /** 线上联系人员 */
    @Excel(name = "线上联系人员")
    private String onlineContactId;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstIssuanceDate; // 首次发证日期（复审）

    private String certificateCode; // 证件编码（复审）

    private String certificateValidityPeriod; // 持证有效期（复审）

    private String trainingClass; // 教学班

    private String recordMissing; // 档案缺失情况

    private String projectMap; // 项目集合
    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 教学班 */
    private String exampleOne;

    /** 档案缺失情况 */
    private String exampleTwo;

    /** 班级id */
    private String exampleThree;

    /** 培训经历 */
    private String trainingExperience;

    public String getTrainingExperience() {
        return trainingExperience;
    }

    public void setTrainingExperience(String trainingExperience) {
        this.trainingExperience = trainingExperience;
    }

    public String getRegistrationPosition() {
        return registrationPosition;
    }

    public void setRegistrationPosition(String registrationPosition) {
        this.registrationPosition = registrationPosition;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public void setRegistrationId(String registrationId) 
    {
        this.registrationId = registrationId;
    }

    public String getRegistrationId() 
    {
        return registrationId;
    }

    public void setStudentId(String studentId) 
    {
        this.studentId = studentId;
    }

    public String getStudentId() 
    {
        return studentId;
    }

    public void setUnitId(String unitId) 
    {
        this.unitId = unitId;
    }

    public String getUnitId() 
    {
        return unitId;
    }

    public void setSubjectId(String subjectId) 
    {
        this.subjectId = subjectId;
    }

    public String getSubjectId() 
    {
        return subjectId;
    }

    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }

    public void setTrainingType(String trainingType) 
    {
        this.trainingType = trainingType;
    }

    public String getTrainingType() 
    {
        return trainingType;
    }

    public void setRecordId(String recordId) 
    {
        this.recordId = recordId;
    }

    public String getRecordId() 
    {
        return recordId;
    }

    public void setRegistrationMethod(String registrationMethod) 
    {
        this.registrationMethod = registrationMethod;
    }

    public String getRegistrationMethod() 
    {
        return registrationMethod;
    }

    public void setWorkResume(String workResume) 
    {
        this.workResume = workResume;
    }

    public String getWorkResume() 
    {
        return workResume;
    }

    public void setTrackingNumber(String trackingNumber) 
    {
        this.trackingNumber = trackingNumber;
    }

    public String getTrackingNumber() 
    {
        return trackingNumber;
    }

    public void setSubmitStatus(String submitStatus) 
    {
        this.submitStatus = submitStatus;
    }

    public String getSubmitStatus() 
    {
        return submitStatus;
    }

    public void setReviewStatus(String reviewStatus) 
    {
        this.reviewStatus = reviewStatus;
    }

    public String getReviewStatus() 
    {
        return reviewStatus;
    }

    public void setPaymentStatus(String paymentStatus) 
    {
        this.paymentStatus = paymentStatus;
    }

    public String getPaymentStatus() 
    {
        return paymentStatus;
    }

    public void setClassStatus(String classStatus) 
    {
        this.classStatus = classStatus;
    }

    public String getClassStatus() 
    {
        return classStatus;
    }

    public void setRecordStatus(String recordStatus) 
    {
        this.recordStatus = recordStatus;
    }

    public String getRecordStatus() 
    {
        return recordStatus;
    }

    public void setAgreementStatus(String agreementStatus) 
    {
        this.agreementStatus = agreementStatus;
    }

    public void setFirstIssuanceDate(Date firstIssuanceDate) {
        this.firstIssuanceDate = firstIssuanceDate;
    }

    public void setCertificateCode(String certificateCode) {
        this.certificateCode = certificateCode;
    }

    public void setCertificateValidityPeriod(String certificateValidityPeriod) {
        this.certificateValidityPeriod = certificateValidityPeriod;
    }

    public void setTrainingClass(String trainingClass) {
        this.trainingClass = trainingClass;
    }

    public void setRecordMissing(String recordMissing) {
        this.recordMissing = recordMissing;
    }

    public void setProjectMap(String projectMap) {
        this.projectMap = projectMap;
    }

    public Date getFirstIssuanceDate() {
        return firstIssuanceDate;
    }

    public String getCertificateCode() {
        return certificateCode;
    }

    public String getCertificateValidityPeriod() {
        return certificateValidityPeriod;
    }

    public String getTrainingClass() {
        return trainingClass;
    }

    public String getRecordMissing() {
        return recordMissing;
    }

    public String getProjectMap() {
        return projectMap;
    }

    public String getAgreementStatus()
    {
        return agreementStatus;
    }

    public void setOnlineContactId(String onlineContactId) 
    {
        this.onlineContactId = onlineContactId;
    }

    public String getOnlineContactId() 
    {
        return onlineContactId;
    }

    public void setExampleOne(String exampleOne) 
    {
        this.exampleOne = exampleOne;
    }

    public String getExampleOne() 
    {
        return exampleOne;
    }

    public void setExampleTwo(String exampleTwo) 
    {
        this.exampleTwo = exampleTwo;
    }

    public String getExampleTwo() 
    {
        return exampleTwo;
    }

    public void setExampleThree(String exampleThree) 
    {
        this.exampleThree = exampleThree;
    }

    public String getExampleThree() 
    {
        return exampleThree;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("registrationId", getRegistrationId())
            .append("studentId", getStudentId())
            .append("unitId", getUnitId())
            .append("subjectId", getSubjectId())
            .append("projectId", getProjectId())
            .append("trainingType", getTrainingType())
            .append("recordId", getRecordId())
            .append("registrationMethod", getRegistrationMethod())
            .append("workResume", getWorkResume())
            .append("registrationPosition", getRegistrationPosition())
            .append("trackingNumber", getTrackingNumber())
            .append("submitStatus", getSubmitStatus())
            .append("reviewStatus", getReviewStatus())
            .append("paymentStatus", getPaymentStatus())
            .append("classStatus", getClassStatus())
            .append("delFlag", getDelFlag())
            .append("recordStatus", getRecordStatus())
            .append("agreementStatus", getAgreementStatus())
            .append("onlineContactId", getOnlineContactId())
            .append("firstIssuanceDate", getFirstIssuanceDate())
            .append("certificateCode", getCertificateCode())
            .append("certificateValidityPeriod", getCertificateValidityPeriod())
            .append("trainingClass", getTrainingClass())
            .append("recordMissing", getRecordMissing())
            .append("projectMap", getProjectMap())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("exampleOne", getExampleOne())
            .append("exampleTwo", getExampleTwo())
            .append("exampleThree", getExampleThree())
            .append("remark", getRemark())
            .append("trainingExperience", getTrainingExperience())
            .toString();
    }
}
